XML.cloneNode()

Доступность

Flash Player 5.

Синтаксис

my_xml.cloneNode(deep:Boolean) : XMLNode

Параметры

deep Булева величина; если равна true, дочерние узлы указанного объекта XML будут клонированы рекурсивно.

Возвращает

Объект XMLNode.

Описание

Метод; формирует и возвращает новый XML узел того же типа, с тем же именем, значением и набором аттрибутов, что и указанныйобъект XML. Если параметр deep равен true, все дочерние узлы клонируются рекурсивно, то есть в результате будет получено в точности такое же дерево.

Клон узла, который возвращается данным методом, не связан с деревом исходного объекта. Следовательно, nextSibling, parentNode и previousSibling равны null. Если параметр deep равен false или my_xml не имеет дочерних узлов, firstChild и lastChild также равны null.

Пример

В примере ниже показано, как использовать метод XML.cloneNode() для создания копии узла:

// Создаем новый XML
var doc:XML = new XML();

// Создаем корневой (root) узел
var rootNode:XMLNode = doc.createElement("rootNode");

// Создаем три дочерних узла
var oldest:XMLNode = doc.createElement("oldest");
var middle:XMLNode = doc.createElement("middle");
var youngest:XMLNode = doc.createElement("youngest");

// Делаем узел rootNode корневым элементом дерева XML документа
doc.appendChild(rootNode);

// Добавляем созданные узлы в список дочерних узлов rootNode
rootNode.appendChild(oldest);
rootNode.appendChild(middle);
rootNode.appendChild(youngest);

// Создаем копию узла middle, используя cloneNode()
var middle2:XMLNode = middle.cloneNode(false);

// Вставляем узел-клон в rootNode между узлами middle и youngest и выводим результат
rootNode.insertBefore(middle2, youngest);
trace(rootNode);
// Выводит (with line breaks added): 
// <rootNode>
//    <oldest />
//    <middle />
//    <middle />
//    <youngest />
// </rootNode>

// Создаем копию узла rootNode при помощи cloneNode(), чтобы продемонстрировать копирование вложенных узлов
var rootClone:XMLNode = rootNode.cloneNode(true);

// Вставляем узел-клон в rootNode и выводим результат
rootNode.appendChild(rootClone);
trace(rootNode); 
// Выводит (with line breaks added): 
// <rootNode>
//   <oldest />
//   <middle />
//   <middle />
//   <youngest />
//   <rootNode>
//      <oldest />
//      <middle />
//      <middle />
//      <youngest />
//   </rootNode>
// </rootNode>